dom-helpers
tiny modular DOM lib for ie8+
Install
npm i -S dom-helpers
Mostly just naive wrappers around common DOM API inconsistencies, Cross browser work is minimal and mostly taken from jQuery. This library doesn't do a lot to normalize behavior across browsers, it mostly seeks to provide a common interface, and eliminate the need to write the same damn if (ie8)
statements in every project.
For example events.on
works in all browsers ie8+ but it uses the native event system so actual event oddities will continue to exist. If you need robust cross-browser support, use jQuery. If you are just tired of rewriting:
if (document.addEventListener)
return (node, eventName, handler, capture) =>
node.addEventListener(eventName, handler, capture || false);
else if (document.attachEvent)
return (node, eventName, handler) =>
node.attachEvent('on' + eventName, handler);
over and over again, or you need a ok getComputedStyle
polyfill but don't want to include all of jQuery, use this.
dom-helpers does expect certain, polyfillable, es5 features to be present for which you can use es5-shim
for ie8
The real advantage to this collection is that any method can be required individually, meaning tools like Browserify or webpack will only include the exact methods you use. This is great for environments where jQuery doesn't make sense, such as React
where you only occasionally need to do direct DOM manipulation.
Each level of the module can be required as a whole or you can drill down for a specific method or section:
var helpers = require('dom-helpers')
var query = require('dom-helpers/query')
var offset = require('dom-helpers/query/offset')
require('dom-helpers/style')(node, { width: '40px' })
var gcs = require('dom-helpers/style/getComputedStyle')